<?php

/*------------------------------------------------
*
*   Explay Engine Content Management System.
*   Copyright © 2008 Golovdinov Alexander.
*
*-------------------------------------------------
*
*   Official site: wwww.alex-home.spb.ru/explay.html
*   Contact e-mail: golovdinov@gmail.com
*
*   GNU General Public License original source:
*   http://www.gnu.org/licenses/gpl-3.0.html
*
------------------------------------------------*/

if (!defined ('EXPLAY')) exit;

if (is_registered()) error_403 ();

$errors = array ();

if (isset($_POST['reg'])) {

	$agree = $_POST['agree'];
	$nlogin = strip_tags(trim($_POST['login']));
	$npass = strip_tags(trim($_POST['pass1']));
	$npass2 = strip_tags(trim($_POST['pass2']));
	$nname = strip_tags(trim($_POST['name']));
	$nemail = strip_tags(trim($_POST['email']));

	if ($_POST['pass1'] == '') $errors['pass1'] = 'Введите пароль';
	
	$error = '';
		
	if ($agree != 'yes') $errors['rules'] = 'Если вы не согласны с правилами сайта, вы не можете зарегистрироваться!';
		
	$check_email = $db->query ("SELECT user_email FROM ".DB_PEREFIX."_users WHERE user_email = '$nemail'");
	$check_log = $db->query ("SELECT * FROM ".DB_PEREFIX."_users WHERE user_login = '$nlogin'");
	$check_name = $db->query ("SELECT * FROM ".DB_PEREFIX."_users WHERE user_name = '$nname'");
		
	if (mb_strlen($nname) < $SITE['user_name'] || mb_strlen($nname) > 30) $errors['name'] = 'Имя должно быть от '.$SITE['user_name'].' до 16 символов!';
	if (mb_strlen($npass) < $SITE['user_name'] || mb_strlen($npass) > 16) $errors['password'] = 'Пароль должен быть от '.$SITE['user_name'].' до 16 символов!';
	if (mb_strlen($nlogin) < $SITE['user_name'] || mb_strlen($nlogin) > 16) $errors['login'] = 'Логин должен быть от '.$SITE['user_name'].'до 16 символов!';
		
	if (is_numeric ($nlogin)) $errors['login'] = 'Логин не может состоять только из чисел!';
	if (!preg_match("#^[a-zA-Z0-9_-]+$#", $nlogin)) $errors['login'] = 'Логин должен содеоржать только буквы латинского алфавита, цифры и знак подчеркивания!';
	
	if ($db->num_rows($check_name) > 0) $errors['name'] = 'Пользователь с таким именем уже существует!';
	if ($db->num_rows($check_log) > 0) $errors['login'] = 'Пользователь с таким логином уже существует!';
	if ($db->num_rows($check_email) > 0) $errors['email'] = 'Пользователь с таким e-mail уже существует!';
		
	if ($npass2 != $npass) $errors['pass2'] = 'Пароли не совпадают!';
	if (!eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$",$nemail)) $errors['email'] = 'Неправильный формат e-mail!';
	if ($_POST['code'] != $_SESSION['secret_code'] || !$_SESSION['secret_code']) $errors['code'] = 'Неправильный проверочный код!';
		
	if ($error == '' && count ($errors) == 0) {
		
		$put_user = $db->query("INSERT INTO ".DB_PEREFIX."_users VALUES (0, '$nlogin', '".expl_hash($npass)."', '$nname', 'user', '0', '$nemail', '$nicq', '', '".time()."', 'off', '0', '0', 'off', '', '', '".time()."', '0', 0, '', '', '', '', '', '', '', '', '')");
			
		$url = $_SERVER['HTTP_HOST'];
		$url = str_replace ('www.', '', $url);
		$url = 'www.'.$url;
			
		$user = array ();
		$user['user_name'] = $nname;
		$user['user_login'] = $nlogin;
		$user['user_password'] = $npass;
		$site = array ();
		$site['title'] = $SITE['site_name'];
		$site['url'] = 'http://'.$_SERVER['HTTP_HOST'];
		Templater::set_var ('user', $user);
		Templater::set_var ('site', $site);
		$body = Templater::display ('mail/registration.tpl');
									
		site_message ('Вы успешно зарегистрировались!<br />В течении нескольких минут на ваш e-mail будут высланы ваши данные.<p><input type="button" value="Вход в систему" onclick="document.location.href=\'/login.html\';" style="width:160px" />');
		if (!send_mail ("{$nemail} <{$nemail}>", $SITE['site_name'], $SITE['site_email'], 'Регистрация', $body)) {}//site_error ('E-mail faled!');

	}
	elseif ($error != '')
		site_error ($error);
		
	if ($error != '' || count ($errors) > 0)
		print_reg ();


} else {
	print_reg ();
}


function print_reg () {
	
	global $errors;
	
	include $_SERVER['DOCUMENT_ROOT'].'/engine/forms.class.php';
	
	$form = new explayForm ('Регистрация', '/registration/', 'post', 'regist');
	
	$item = $form->new_item ('text');
	$item->label ('Логин');
	$item->name ('login');
	$item->help ('Логин будет использоваться для входа в систему. Он должен содержать только символы латинского алфавита, цифры и знак подчеркивания.');
	$item->attr ('onblur', "check_name('login', 'login-layer');");
	$item->attr ('maxlength', 30);
	$item->attr ('style', 'width:50%;');
	$item->post_text ('<div id="login-layer"></div>');
	if (isset($errors['login'])) $item->error ($errors['login']);
	$item->done ();
	
	$item = $form->new_item ('password');
	$item->label ('Пароль');
	$item->name ('pass1');
	if (isset($errors['pass1'])) $item->error ($errors['pass1']);
	$item->attr ('maxlength', 30);
	$item->attr ('style', 'width:50%;');
	$item->done ();
	
	$item = $form->new_item ('password');
	$item->label ('Повторите пароль');
	$item->name ('pass2');
	$item->attr ('maxlength', 30);
	$item->attr ('style', 'width:50%;');
	if (isset($errors['pass2'])) $item->error ($errors['pass2']);
	$item->done ();	
	
	$item = $form->new_item ('text', true);
	$item->label ('Имя');
	$item->name ('name');
	$item->help ('Имя будет видно другим пользователям.');
	$item->attr ('onblur', "check_name('name', 'user-layer');");
	$item->attr ('maxlength', 30);
	$item->attr ('style', 'width:50%;');
	$item->post_text ('<div id="user-layer"></div>');
	if (isset($errors['name'])) $item->error ($errors['name']);
	$item->done ();
	
	$item = $form->new_item ('text', true);
	$item->label ('E-mail');
	$item->name ('email');
	$item->attr ('onblur', "check_name('email', 'mail-layer');");
	$item->attr ('maxlength', 30);
	$item->attr ('style', 'width:50%;');
	$item->post_text ('<div id="mail-layer"></div>');
	if (isset($errors['email'])) $item->error ($errors['email']);
	$item->done ();
	
	$item = $form->new_item ('text');
	$item->label ('Введите проверочный код');
	$item->pre_text ('<span id="captcha_image"><img src="/antibot.gif" align="absmiddle"></span>');
	$item->post_text ('<br /><small>Не видно? <a href="/" onclick="reload_captcha(); return false;"><small>Обновить!</small></a></small>');
	$item->name ('code');
	$item->attr ('style', 'width:50px;');
	$item->attr ('maxlength', 5);
	if (isset($errors['code'])) $item->error ($errors['code']);
	$item->done ();
	
	$item = $form->new_item ('checkbox');
	$item->name ('agree');
	$item->label ('Я согласен с <a href="/rules.html" target="_blank">правилами сайта</a>');	
	$item->value ('yes');
	//$item->to_right ();
	if (isset($errors['rules'])) $item->error ($errors['rules']);
	$item->done ();
	
	$form->add_button ('submit', 'Зарегистроваться', 'reg');
	
	$form->past();
	
	unset ($form, $item);
	
}
